package cl.falabella.cmr.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import cl.falabella.cmr.business.Region;

public class RegionDAO extends Region {

	public RegionDAO(String nombre, String capital, String numeral) {
		super(nombre, capital, numeral);
		this.id = 0;
	}

	public RegionDAO(int id, String nombre, String capital, String numeral) {
		super(nombre, capital, numeral);
		this.id = id;
	}

	private int id;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public static List<RegionDAO> getRegiones() {
		List<RegionDAO> regiones = new ArrayList<RegionDAO>();

		/* Obtener conecxion a la BD */
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			return regiones;
		}

		Connection conn;

		try {
			conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/mydb", "root", "password");
		} catch (SQLException e) {
			e.printStackTrace();
			return regiones;
		}

		/* Realizamos la consulta */
		String query = "SELECT * FROM REGION";
		PreparedStatement stmt;

		try {
			stmt = conn.prepareStatement(query);
		} catch (SQLException e) {
			e.printStackTrace();
			return regiones;
		}

		ResultSet rs;

		try {
			rs = stmt.executeQuery();

			while (rs.next()) {
				String nombre = rs.getString("nombre");
				String numeral = rs.getString("numeral");
				
				RegionDAO region = new RegionDAO(nombre, null, numeral);
				regiones.add(region);
				//System.out.println(numeral + ") Region de " + nombre);
			}

		} catch (SQLException e) {
			e.printStackTrace();
			return regiones;
		}

		/* Generar los DAO a partir del resultset */

		return regiones;
	}

}
